C++ 智能指针与内存管理精讲
📚 共计 30 章节
01
智能指针总览
为什么需要智能指针?从裸指针的痛点说起。
入门
概念
02
RAII思想
资源获取即初始化,C++内存管理的基石。
核心
设计
03
auto_ptr的兴衰
为什么它被废弃了?
历史
教训
04
unique_ptr (上)
独占所有权模型,基本用法与make_unique。
独占
现代
05
unique_ptr (下)
自定义删除器,与容器配合使用。
删除器
容器
06
shared_ptr (上)
共享所有权模型,引用计数原理。
共享
计数
07
shared_ptr (中)
make_shared与性能优化,控制块详解。
优化
控制块
08
shared_ptr (下)
循环引用与weak_ptr破局。
循环
weak
09
weak_ptr
观察者模式,解决悬空指针。
观察者
安全
10
智能指针的线程安全性
引用计数是安全的,但对象不是。
并发
注意
11
自定义删除器
为智能指针定制资源释放行为。
灵活
资源
12
智能指针与数组
管理动态数组的正确姿势。
数组
技巧
13
智能指针与this
enable_shared_from_this的妙用。
this
生命周期
14
智能指针与继承
基类析构函数必须为虚函数吗?
多态
析构
15
智能指针与动态类型
typeid与dynamic_cast的正确使用。
RTTI
转换
16
智能指针与异常安全
异常发生时如何保证资源不泄漏?
异常
保证
17
智能指针与第三方库
封装C风格API的最佳实践。
封装
C API
18
智能指针的性能开销
它到底慢在哪里?
性能
分析
19
手写一个简易unique_ptr
深入理解其实现原理。
实现
原理
20
手写一个简易shared_ptr
理解控制块与引用计数。
控制块
手写
21
内存泄漏检测
Valgrind、AddressSanitizer与智能指针。
工具
调试
22
new/delete与operator new
深入内存分配底层。
底层
分配
23
placement new
在指定内存上构造对象。
定位
构造
24
内存池 (Memory Pool)
为什么需要它?与智能指针结合。
池化
性能
25
对象池 (Object Pool)
复用对象,减少内存碎片。
复用
碎片
26
写时复制 (Copy-on-Write)
智能指针实现共享语义。
COW
共享
27
侵入式智能指针
当引用计数存在于对象内部时。
侵入
内部计数
28
智能指针在Qt中的应用
QPointer与QSharedPointer。
Qt
框架
29
智能指针在Boost库中的应用
boost::intrusive_ptr。
Boost
扩展
30
C++23展望
std::out_ptr与std::inout_ptr,简化C互操作。
未来
互操作